<?php
/**
 * @title 336. 回文对 - 预处理+剪枝
 * @author start2004
 */

// ini_set("memory_limit", "128M");

class Solution {

    /**
     * @param String[] $words
     * @return Integer[][]
     */
    function palindromePairs($words) {
        /**
         * @since 2020-08-06 结果集
         */
        $result = [];

        /**
         * @since 2020-08-06 长度
         */
        $len = count($words);

        /**
         * @since 2020-08-06 回文字符数组
         */
        $palindromeArray = [];

        /**
         * @since 2020-08-06 是否有空数组
         */
        $emptyKey = null;

        /**
         * @since 2020-08-06 预处理
         */
        $prefixArray = [];
        for ($i=0; $i<$len; $i++){
            $wordA = $words[$i];
            if(empty($wordA)){
                $emptyKey = $i;
                unset($words[$i]);
            } else {
                /**
                 * @since 2020-08-06 是否是回文
                 */
                if(self::find($wordA)){
                    $palindromeArray[] = $i;
                } else {}
                $prefixArray[$wordA[strlen($wordA)-1]][] = [$wordA, $i];
            }
        }

        /**
         * @since 2020-08-06 回文单独处理
         */
        if($emptyKey !== null){
            foreach ($palindromeArray as $key){
                $result[] = [$key, $emptyKey];
                $result[] = [$emptyKey, $key];
            }
        } else {}

        /**
         * @since 2020-08-06 遍历
         */
        foreach($words as $keyA=>$wordA){
            if(isset($prefixArray[$wordA[0]])){
                foreach($prefixArray[$wordA[0]] as list($wordB, $keyB)){
                    if($keyA == $keyB){
                        continue;
                    } else {}

                    if(self::find($wordA . $wordB)){
                        $result[] = [$keyA, $keyB];
                    } else {}
                }
            } else {}
        }

        /**
         * @return
         */
        return $result;
    }

    /**
     * @title 比较2个字符拼接是否回文
     * @author start2004
     * @since 2020-08-06 Created
     *
     * @param string $str
     * @return boolean
     */
    public function find($str = ""){
        /**
         * @since 2020-08-06 左右指针
         */
        $left = 0;
        $right = strlen($str)-1;
        while($left<$right){
            if($str[$left] !== $str[$right]){
                return false;
                break;
            } else {}
            $left++;
            $right--;
        }

        /**
         * @return
         */
        return true;
    }
}



/**
 * @url http://127.0.0.1/leetcode/202008/2020.08.06_2.php
 */
$datas = [
    ["abcd","dcba","lls","s","sssll"],
    ["a",""],
    ["efedc","c","eef","f","edc","acd","fdc","cffef","fede","efb","bfbfd","bd","efccee","ebaead","fb","bfbdd","bbb","cffaefd","cbe","febaedeb","eaded","aaafa","ba","bcfdcfec","acbcbfb","cbbb","cf","ecd","deafdbb","feebbbf","dfed","baafc","fdf","e","defdf","dccfddd","bb","facaabee","ffe","adecbe","dbcacfba","a","edceaa","be","bea","eaddc","dd","fcccaeb","b","fbe","fffb","bffbb","ebbac","fa","bcdbced","bcdeac","bdeca","aeeeea","d","ceb","addcfab","ccfccfa","ebddbac","abbcddba","caebebee","bf","dacbcdd","aedccd","fadcaa","adda","da","dfebae","cdb","db","fde","fcbecf","efbdbcac","aaba","befcfefa","eafdadad","ebdadcb","ebddc","deb","aaed","edca","cd","cbecfdfb","aecd","beaedbcd","ad","ecabdb","caddbaf","aaad","ddf","badfed","df","eadbccad","fedcee","bbfaafbf","cb","af","eb","beecd","ebfda","bdba","aa","dcba","ddcea","ca","cda","fe","aafaa","bdfee","adcffe","afaddd","fdfeb","cdabcfb","aad","bdfb","ec","efebefb","cdfae","cbfebfbb","ab","fc","dcdcced","aaedeff","eed","effafba","acdabbbb","dea","bbfeabba","bacebcef","dfdbd","aaaecdcb","aeddacdc","ada","fdb","ceffdfa","dafbb","bfe","bbebdf","debacd","cfbaf","ef","ffade","bfafdc","bfebfec","acaff","cffaafe","daeebe","afcbadab","deee","acfb","aeadaada","fefaa","eeec","fead","fae","ddcbf","daeebc","abeaec","bcacac","deddffae","beeaea","bbfca","beaed","cee","dfebf","caabbee","bddeaec","fcb","cce","decdd","eab","fffcbd","bebfc","afefabcf","feebed","cdc","beee","dceba","dbaddcec","dcdef","edefacea","bba","dbdeb","eae","aefacaee","edddebb","fedcdfaf","dabfe","caef","ecea","aafcd","faabcb","dceaac","daedf","cedb","affaaad","cddeea","abcabad","eeacb","abeddd","abaabeda","ebcddec","babebfca","cedeeb","bdddbbbb","ffeeccf","eaff","efbeeee","bca","acffeada","cfeeaabf","beefdb","fbfeecd","ebebfa","ffadbea","cafafbc","defaadcf","eceadeac","cffb","bdddf","ecaafdbb","bce","adaa","adefe","bfdb","fedcbe","aadbfd","baffde","eefafbbf","cffdfef","cc","eddeafef","eaacabfa","eeb","defdaed","fbebafa","bfdead","ed","caffaaa","caefabca","bcafebf","bdfcc","aedfb","bfbdfbdd","bead","aabddfba","ccfddcae","ea","cabfdafc","facacce","aebcca","abecfd","caa","acbeecca","cfebed","ebedcfcb","eafbb","caebbd","ffcebe","ffaa","ee","fbdfdc","abdaedb","dbbca","bfccb","caff","dcfaf","dcdacc","fcabf","aaaeeffa","abfa","abc","ecccbd","daebe","adeecfbe","bcfc","fce","fddb","cccddeac","aaacbbb","bffdcc","dbacb","efbbef","ce","ceeffdfe","ccbab","edcee","dfc","cbbfab","cfff","bdd","cdffccce","eabfaf","cbfec","bbfdbda","bbfd","cecf","caba","ccbdaefd","bfbbb","acaedaf","cdca","decaa","cabdedbb","edbabeae","bfaea","afabce","bcd","ebe","afa","ac","ccedae","baaee","baafdbc","bbbda","de","dc","abdbcfdf","fbc","edbd","afccaa","dbdb","affeecfa","ffa","fd","bdac","fcce","aaebbef","eedca","faffc","feedead","aadfaf","aeabbecd","ddc","faaace","feb","beb","bafdfc","aecbd","bfba","dddbd","ffbdcfe","eaaa","ceae","ecdabebc","efefeac","feadb","ccfefdea","bdbdf","acdea","dcfefc","ae","ebafad","bded","cfebf","ccdaecf","abeadda","abce","ceabce","dbec","fbfdaabc","fbfebaea","febe","dbc","fcbb","fba","bbbfc","edb","dfea","bdbdfbcc","deac","bbbb","eff","aae","dcadc","ddabaf","faded","dcdfaad","adeecee","cefc","ebd","aeeccb","adaddfbf","edfeac","bffadaf","febdade","efa","bedeeba","fbbafdae","abddfe","dbba","cefb","ebf","cdbb","feccfe","ceaeeddf","dcedcab","aebec","fabcab","aedafc","bddb","dba","adabeee","becabccc","eede","adf","fbcafc","cbeb","eabf","aecce","efedfd","abaa","ceea","fdcb","edbbee","cfdeefd","ebb","affaceaa","eedfbe","aafa","bdbdbbf","afbe","ccccd","dbeaeab","ccedcc","cbfaf","dbaaeec","daff","eaaef","cddadbfb","ede","ebdcecb","aeaacf","bbdb","aacf","ccdfaf","dccddabb","adadcef","bddaabaa","ffb","ceeaeacb","eeebf","fbacfbfa","dcced","dcae","ccdaf","baef","faaad","cfb","eebdcecc","def","dfeddd","cafacaff","dbfffbb","ccfeece","dcdcf","ddae","fdaeba","aafad","eeafffa","deadd","eeecfd","eddbdec","febbcebc","cbbd","dbbd","ecafbeb","adaaf","bbd","cecffecb","aab","efddeeea","cedbfcc","afc","aaadd","dfcc","edbbbea","faac","fbaee","dad","bffc","ddb","bffdcee","bcce","fbedbae","cddf","ecbeff","acadeac","dadff","dbcfafeb","adecacad","dcddde","ff","bbfbcf","cbbeddad","ecdc","dfeccea","aaffbacb","beacb","ccfcfa","ffbca","dcceeff","bedbfacc","adaebb","fcda","eabeef","ffcecbfb","daca","dbefff","cfea","edf","bcfdece","fbae","feeeadc","baa","efad","fdefc","cbebaaab","aaacdaed","fdadcfff","fbcbdb","fdbad","cdedd","bbcfcaec","fdfdabd","eeafb","bab","acefbaa","dfa","ebabefb","acfe","fbcdadd","cffdec","dbabfaf","dcace","ddaf","bc","feef","edfa","dedd","afddafed","debefbd","aafedd","acbffbb","afddeab","dcfacd","cbbdeccb","cae","dfedfba","adcdc","fffacff","fdbabf","cdceeba","ebbfacc","dcf","edd","afea","cec","fefd","dfbac","bffcaabc","babee","efeabaa","dbcea","aeedac","adb","faabfb","fbafbea","accefbae","ffea","bdfceeda","adcdefbe","cffdeaa","bdeecbca","bcadcd","bde","dcdbfee","fdedeafa","cbfd","eacaebc","bfbdf","cacdc","fbad","cabdf","aadcdcd","dbadbb","cad","ecbf","ebcafa","cccfaecb","fcca","cecbefda","cebbf","bed","ddba","ffebb","bcefca","defeef","efeedad","cbcdd","ddbaccee","acaba","acdc","ffeae","fceb","adeeb","ccdece","ecfef","fab","dfdbdb","edfb","fbfb","decbd","abffdb","cdf","aadabfcb","edeadb","ccbbabbb","cdcbad","ccabffc","dbeddbf","dbe","ddfc","debdfff","aee","aadce","eefefec","badfebdc","dccde","cececcdf","dfedc","ddbeabb","aea","ddcd","bbaabef","ccdb","cabcdcbe","ecaceee","dda","cfddf","fdefcc","becc","bacbeff","bdfab","abe","cba","ddbcea","affacff","abd","aedfeacb","edaea","cffeabc","caf","babcddb","cafa","bcdcca","bcffcbe","fceabdcd","cedab","aaaddf","eebefa","dac","ade","eddde","efc","dbbdeab","cca","eeca","deeb","fafbeb","cfbff","efcbfba","ddecadd","bdfc","feafdae","bacfcedf","aeff","fad","aefbcef","cfceabfe","bbdd","faa","fabcc","eddabaab","afafffca","ffcfdea","cbcde","edebdae","ddeccccb","bfaf","bdfbbfab","ccbbcd","ebddaa","cbc","defcbfff","abab","dceabbc","eaefeab","baacbda","bdabc","defa","ccfadf","aeb","fffbc","dafa","dff","cdcdabcd","afecbfd","cdd","fdfcec","ead","ebba","bafcdb","aaeaaa","ccca","ffdf","bacdb","faacccd","dadabdf","baf","efcfcbdc","ceedf","fbafea","addfdad","ddfcccf","defea","bdcaadaf","acad","edbfbb","becfeec","cea","febd","ffcdb","caccaae","efdaeacc","bacbac","dccbffd","eabcee","badbd","eedda","cafeedd","bdddab","fefdd","caabdceb","afaba","acbaedf","cdbeee","ebecbbdc","eaccd","fcabbf","dbb","cadcdfc","ebabfba","fcfccf","eeadaebe","afdebdc","dcbeacc","ebcbaafb","afedceba","daeead","daace","ffbabedd","caabead","bfdfeff","cdfcebb","aebaaeca","cacfda","effca","ddecdab","cdcdf","eadbae","adcb","cbafaa","ecccdfba","bbcdeeb","eabccc","eaac","ddbfaa","ddbecad","ecbefefe","bbabe","afbac","feeb","caecccbe","fea","ceffb","eacbe","ffefa","fbde","dcceeada","cadafeb","decaddb","cfbbbeb","eeeba","deaecb","bbfdf","acf","adefefe","efdeadf","eddfad","beffcca","eabcefcc","acda","ded","dfeb","cbcbe","ecff","ebc","bbbdaedb","ddece","afedfab","efacec","ffcafd","afde","abcc","efd","ebeda","fddcddb","bdeadc","dacabbef","aaaef","bcde","bfb","dfbeff","efe","babaed","afcadfdc","abaf","ebbdf","ecec","ecbfada","bcdda","edeac","daccf","dece","eadbf","fdbcffdc","beddf","cdbfefa","daeeec","cefffcc","ceacebfc","afededc","dedcbd","dcc","bdddabdd","eabdcac","cbdcadc","aceff","ddcbaba","dee","ebeec","ccfbdaa","eabdbc","bdcaaeee","fcd","cbf","fcddbbf","abafc","ebbdac","adacacee","bfbf","aeeaa","efaaaaad","aeecbe","ccbff","bfcdbcfe","ccbdda","fbba","cabccff","bcabe","dffcda","aadaeeef","bedbdda","cedbeb","daf","eafdef","bdefeaae","affabcff","fdcddafd","abaaee","edde","eafdedb","efdcaece","dcdbbfef","eecaa","afdd","defc","baeb","edcdf","bcaecf","aacdccd","eeeead","ebafc","fcdaccb","acfdadff","bfceecf","eecafc","cecfaeff","ccadea","bebeace","ebcbecac","efaafc","baeeccba","fbce","aac","dadcb","cedeffec","fafd","bbaefc","dbebaedd","dabeddec","adbead","cceaeefb","cdba","eeedfefa","ceccb","cbefcffa","aacbff","beafdbbe","bbab","ccebfa","bfdedb","cbceece","aaaffbac","bafeeca","ffbfff","aecbf","dbfbdfd","dec","deefab","cbbdbce","adaffdac","fdedaf","fbccabd","cbdbbb","cdedcabc","dbbe","aabbae","fbeafefb","ceafaad","baabac","feeeee","aefa","acec","bfeeec","cdaeadb","befeffe","cfbdef","eaddcec","ffacffe","ceeafca","caacd","edccfde","bda","ffd","fbcfa","acccdda","cebd","aec","afaef","dbdcddfb","abcdfdf","adbddf","bdaeeae","ecdaadab","cdbac","bdefbbc","efaffbda","abdf","bdbfecdc","afbbb","edfeed","cbeafdcb","fabccbd","cbfaddf","eebeff","cdbeeedb","ddcddfc","afee","cbebed","eaceebd","abbfb","efae","eabe","fbbe","cbdeae","bcebacd","eac","efdbecee","ecbce","dceaed","bbffeacd","cfd","fbbded","eeeeccb","aacfc","dbfbaae","bfbdeacd","eefc","dcbeef","ffbbfa","ffeaddd","cfeba","dfcf","fbbdbefb","eeead","fddeffee","efcec","cadfae","acbbdcab","efeebfeb","aaf","fcbfdc","dcaaeb","debde","bebdc","dbccaea","bfefae","befa","ddebacca","ddaceee","fdd","dfcaadc","ebaca","afdb","dbdabf","fbfdb","fac","dfcfd","bfdefc","ddaeabdf","dcfacabe","bad","eccfcd","ebfbd","cfaccf","deebcbc","eda","afbb","afcbaad","adbdeb","abebeffd","eafdcba","dab","acbddde","cdabdcb","becab","bfafdfb","cdbc","bafafe","fcdca","eeea","dedfca","bacbacf","ceeae","fcabcbf","dbeeccd","caadaff","adbe","cbdacf","feab","abceafac","cdddef","cedeef","dffeeec","bbea","edffce","ecaeec","bbcafad","dcfacdae","efddbefb","cbddfff","ceddc","cddbb","cdaebeab","eeaed","fcead","dabfa","ccfdfc","fee","ffdddbd","bcefdcd","edafbedf","aebfeaac","fcdd","aef","edeaad","bbdf","ebafa","bceee","fbcf","caaa","adcfefe","bceaacd","ececef","ebab","afaedcab","ebeeb","cdcbdd","bdeeb","aafaddbf","adfde","dafcc","ccdfbbee","faea","fdcec","bbfcb","afcbfd","aadffdee","acbaea","ccfec","dcdaa","abbd","ecae","bdafa","bceff","dcbdf","fcfebdc","adfdfe","febaf","eddbec","aaa","bbeb","dbafab","cbbfd","ffee","deaebb","bbecae","defceaa","bfbc","eefb","aebecb","babd","deafdfbc","dafb","bdfaf","fcac","fffcc","cffdfd","cdaabaa","feeeeddc","ebff","acbcfda","cfefcf","addaed","dcfde","ecabaa","bfeef","bffcbc","faeeffa","aaaaa","debcccde","afece","addec","bbeafd","cbeabfec","beca","fdffec","ceeea","dafbafdb","cbec","faeaced","fbdfee","bfcbbfcf","afdffd","bbcbeb","ccbcacff","ccae","dcab","eaddbebe","caebaaff","cecbedc","fecfafaf","dcadae","aeede","aed","cdefadb","fdcadfd","bddbff","fefa","edbc","febcfed","feccedc","ebace","afeb","eaacec","fcdeed","cafbbcf","aeecfc","fdaae","cbcaea","efcd","fcec","bcafeefd","aedebc","bfd","edeceef","dabdfcc","bccabaa","dfcea","cfcecfe","aeafebbd","adacf","fddeb","ebeeda","cadc","afccbbc","acfa","dcadadee","aafdb","caada","baedaac","eecdd","cdab","dfcba","bbabfae","acdb","bdb","fdbeca","badfb","eeeeeb","ecbdcfee","daddb","ebfc","adaedfc","dade","bafff","adbffe","accfdbe","aebb","bdbedd","efcdeb","efcddbbb","adaaefea","acb","dbbbdae","effbfeef","afbadba","abf","efbabb","dfacd","cbcaceda","eec","aeeb","abaedf","abdebcb","dafbfdb","cecbdcaa","bfbac","ffbdfee","bfdf","aceef","decaba","dbae","aaadee","edfbaf","dfcdfeca","dafebdfb","fdeeaed","aacbcbbc","bcf","fdaf","eeabc","dabada","afaa","afdeffc","bdbbd","adcc","feed","dccfa","fdcdfaa","baddcbfc","bdcdcdfb","abacde","acafdbc","faeafef","bbe","ecac","bfaaccfc","ceedcc","befcdfe","ffddaa","aebcbec","eea","dfe","aaccb","edafba","cbcdbadb","ebcf","faccfacc","adedce","bddfccc","bcaffac","dbceeb","dffc","caeefe","cfcff","badacffc","bfcebaef","edebcfd","fdaa","ebecfcd","bebecdba","bfcdf","fcbbdbc","bddbdeb","dcbeedc","eebcdbeb","bfaeaaff","dbfbfbfb","caedbace","eedcaef","dfbdbcc","edfafc","adc","ffdedab","ddbdbba","cdfef","ccdbeee","debb","dbfaa","ebceeb","abed","cdafaeb","bdef","bfdfd","cfaeeeda","fcfaaacc","ddcbbb","fbbd","bfcbdbc","eedafa","efba","cbffdf","ddcba","ffaadbaf","aefdfe","cfebedc","cbecdcd","cafcafea","efabdc","efebdced","eaebdbd","ecdcdbce","cebcff","caceebf","eabcce","ceeedb","acbccb","ffffa","fff","dabdf","dcccceda","afacbc","afced","aedefc","abee","aaebdae","fcde","cccfeb","adbc","dddccdda","ebefece","aedfa","dbfacada","aedd","ecddd","fbddffa","dcbfee","adfabda","fddabeaf","ccffd","aaecab","fbacdc","daa","ecfcd","ecdfcb","bdaddf","bafedaf","dfebb","adaaeac","faae","acbeeccb","bceaac","cab","fadbdaf","dfbddfd","fabc","eacfb","aaeee","cdfeed","bfedfd","ababedaf","aabcbeba","bbaf","aede","befeace","fec","dcefcae","cffd","bbfac","aecbb","efece","ffff","fcc","fbca","dbcbf","dcfadddd","edfbcde","dcd","eaefba","ecc","cdcfd","dacccbd","fdfddc","bedfec","abffdacd","eaedaeaf","ddbeacad","eced","afaffea","cdfbafbc","ddbebedb","ddeeb","beccacf","ecaf","caedddd","dbfee","dfffc","bbeebfaa","ffeadcdb","ddeeebcd","afcbd","cdbcea","fcfafbcc","ebceaced","dbdcd","eefabaa","cdfcd","fdcfada","acccabe","cacfad","cffccefe","bfdbeefb","bdfebf","aeaa","fecf","faaddc","dbee","fdbdcb","aebcd","dddfd","eeeeffb","bcfb","abcdc","cbfdeef","acbdcdb","eace","eddc","bbc","bcbc","cfaee","becbb","eedadbbd","dbdaccad","ddbadcbd","eacabffe","effb","ecaabead","addc","dabec","dafd","bdaaeef","deafffed","befdafe","ebabdfce","ecdbacb","cfe","fefdccee","cdec","abfafa","dbbfd","cbcfcad","decddcf","bbbbea","becdc","bbbde","dcb","baaffaa","deaecbd","abbfc","cfbba","ddcdafa","aedfed","fbdbfcdf","ebadc","aebbbec","afccadd","cffbbb","feeffbac","aaadba","ffbfeebd","cbfad","afdaae","fcfeddcc","aabecdeb","ebbfbbbc","caaadaf","cfbaacb","fcecdafe","faaadd","bfae","adecae","afedebf","dbaeadaf","abfb","fdfdcef","dcee","eeceee","fabdc","cfcd","ddeafbdd","edfefcb","fbdaadf","daeed","cecc","fefb","ffffbdd","eebbafa","edfcbdca","efefade","acffecb","efccce","fdfd","dddebeff","defd","dabcc","bfebcb","bdddfec","addeee","dbfa","fbcafa","aedebdfd","cddabc","acab","eedafc","bdbcefad","cacba","bbbafefd","aafceafd","adedacec","cbaebfbd","ebfca","faf","fbefceab","deff","fdeebbe","cfdddb","afd","dcbcfadc","abfda","ffca","afbcfefa","eca","cfeaea","bfcc","ebacdc","afca","acc","baecaddf","adaefee","cffdddcd","ece","baeecbb","ccf","cbddcedc","befbfc","fadcbcf","fca","faebccfe","cbfdbabc","fddcbae","aadae","faeefacd","cfbde","cbcb","edbccae","fbb","dcfff","cbdb","dde","ffbeca","dafdffa","fbccbe","baaea","aadcdb","efac","eaefd","aecfc","dbefbae","feeaec","cbda","caafe","bbedf","ecf","eedd","cfbaeba","cecefabe","cbfea","bdfd","baed","adafacf","fccbf","baafbfbe","affcdcd","ffafbacc","bcef","faadbfa","fddcbfca","eacbda","cbafe","eccbdad","acdbaae","befbfbdf","cfeadbad","cddbacf","feba","ffbcb","cde","cfdcfba","bedcb","ddfa","bbedcfa","abba","fcfcdc","ddcfdc","ebfba","febee","bbfefbef","eccb","feec","edcd","ebcaead","cbdbd","aaaeae","fcf","ddbebc","ddbbfaa","eaefc","efdcbbc","fdcade","dcbbd","aabffed","caebce","cdcdff","fbfdfae","fdefedfa","dfdbaed","bfbaaacf","ddfcefc","fedbbef","faeba","cbebb","eade","abacabb","dacf","adeeaad","ebbaffc","bebd","dafbcfb","afcbeac","afbcaba","beda","fefff","dfdb","efbdddd","eecce","dcccac","aadacc","eadea","bafcea","daefcde","bdeab","cddb","ddffb","edbebbd","bfec","aadb","dbce","fffefbc","bdbcabaf","abfcacd","adfdb","eee","acdae","acfccbdd","ebbb","fdaceace","afbeaca","abbfcede","cebca","aecfddce","cdfaffac","ebdb","adcdbbec","aabab","efcbffae","fbbbbbc","ecdadeb","bdcceae","cfffea","bdaeeebd","adfdc","fdaca","bcdfa","bbcaebb","dbbfb","bcbfceef","cdcaef","cfbbdbdd","dddcadfc","fdccfe","bdcb","ebde","efefecbe","fbf","bcaeeff","edbfee","dbfbe","eaaaeee","deaddcfa","cdabfddf","bbdacdf","adecec","bdaadacf","dcbfdcf","baffdb","faacf","ace","cdfdb","dcbfc","abefcbb","fbaedda","fbfcb","ccaabf","daaef","bbdfddf","bedfefc","affcccba","caaadfd","aadfb","feff","afacb","efdaee","bbac","edfbf","aaccd","dbedaaab","dddefafa","afb","ccd","cbee","eabdecdd","eafeccd","abddd","dfdddacf","fdaec","cbdbaaa","bdcedcd","fcbfc","cfcde","caeeed","acfbcbbb","aeaec","eafdead","abdba","faeffd","dfebdb","edaaedd","bbfdbfef","cbbeaca","bfbebfee","fcbabbee","eadfb","fccacad","beddfcc","affaeee","aaabcadd","feacbef","caebdada","efedcd","cedbc","bceec","adbddbfe","dbafef","bcaf","bcdbeafa","ebda","cfcf","dddacad","fddfc","ebaad","fefaaee","bbffcda","ffbdff","febfbdd","cbeecf","aba","bbdfe","dfccabf","cebcfe","daabacf","cddde","dca","fbdce","acaaeb","bffddf","cfcabf","abcfcda","cddcc","dfadb","eaeedb","cacaedd","ababc","dcdbd","ddbccc","fbdb","accbed","fcefdda","bdbc","efcbbca","fceffbdb","ffadc","beaaaf","fada","cadbfc","acdebedd","fddcfb","acbbabd","efdfda","befdf","bebea","ebaba","beddede","ffafb","dcdefd","eccd","fafc","eabdfaae","aececcbd","dbeff","dfb","bdf","ffcbdccf","fffdf","babcefbc","eedcc","cdfccaf","acdedf","ddeab","eefd","aedcdcfd","dcbeab","dfd","bcbecdea","ffbaebb","beecbeaa","addbf","daffe","fbbb","dabe","bcafaffa","dbafcabe","aababfdb","ccddda","aafd","fecaf","eebbbfad","aafffb","adadadda","bddcbdc","bdbdd","ebaabe","fedb","bfbd","bee","bafdea","cbeffdc","fbadae","ffcdafbe","bbfe","adabeceb","abdfadba","cafdb","bcdbe","decbaa","fdfede","dfebc","bcfefc","ecbd","fbdddbdb","ddbceb","abbbaad","adffbde","fecccc","eacdbac","dcadca","efbdca","fbdfedae","fceffa","defcfdb","addcbc","fda","fbcbe","ebac","ced","bffbedef","dbda","facbcb","dbbdd","fbac","aaaade","ecbee","dbadef","eabafdf","fbebeac","bffbfc","dcfee","adffdca","dcfd","fbcbb","dafabdda","dbbeede","fcfbaeed","dcebdf","bbdba","fceeac","ecdcd","eddef","edbfc","caaeee","ffaec","ffebefcd","fdaaef","fcdeaa","bcda","eeacdbe","aadfd","cebf","febfac","abea","acddcbed","adfbcada","cdfaa","fdafcb","ceefddcc","cbecf","adbfe","bccffdcf","cecb","afaaad","fbafb","cdafbdc","afcab","bfdbcdc","afaabcbb","efeeaeeb","badffcd","baacfb","ffdc","bffe","cddbf","addcdb","fadccaef","dface","ddfddde","fcebedf","bdbbc","aebafc","baefdae","eafddaa","babb","bcad","afec","edafc","bddec","aefc","abccdadf","ceabec","cbceaa","dddebd","bcec","cafebbb","ebebec","efbaeb","ddaeade","cabffb","abddf","efddf","ecbfc","bbcadf","aebdeeae","babbea","bcfdeb","edab","fdebbeb","fbd","bbfdffaa","dcdbfb","addafdb","bfc","dbabfeb","bdfba","edfbee","afeaaef","eabcf","cedd","fbfc","aff","dacfbaa","ffccffb","bcffafd","cfdcaece","addce","adfbab","acaefac","cfebdff","eaf","ebdcb","efffe","ffcafc","aeebd","eadacfd","bdfdcb","bfdd","cac","dbbdfedf","afda","edacec","dfdca","cbefa","dbacbb","cccf","ebec","cbaabdd","bcbae","feafea","aeacbed","dfbaaeb","dddcba","eafd","cfa","fbece","caeabdbd","fefeaa","feacdccc","bebeaede","ddd","adadbaf","ecccae","dbab","bfefcb","febdfcc","cbff","badfc","eada","ceaade","bdaece","babeca","ccbcbae","babcfa","cbdcffcb","efdfffad","cddfdee","cbabaa","ddffeea","abaddb","afcaad","cfcc","edbfbbee","fabcfaad","dabdcdd","cecbcce","afcdfa","ddadd","dbcb","fefffdf","efddca","cabab","bbbdccca","affbcae","abfeecfe","afabafb","fadccdc","cecbfbbd","eeadd","eecabccc","bbdbaac","bfebffb","dfafcd","ffddfccd","becdfdd","bbbecec","bac","caceebab","bedebd","adfdfc","eddffb","becea","ecefff","bbeaceae","bacab","ffcbdacf","defbbfef","ffae","fdaedebd","ebffcc","bafed","bacdff","cbbddf","bddebdc","cabad","feddab","ceeccb","aebdecc","cfaeffa","bcc","debbfef","ccc","cdedc","baedded","bdee","eba","ecafabe","fddafc","aaebe","afed","eecaadd","ecefdfb","deaafa","dacd","dafbcfde","bbddfcc","caddeeeb","aabfe","ccfbaef","fbedafcc","abffca","fbeadd","dcfbacfe","daefbb","cfad","bbebdbf","cbcdaae","aabda","accdeeff","ebacaaa","bbcdceb","fddeeb","aecea","ccbbbc","ceaecb","cfccce","ffde","dada","effbf","efca","eebea","fecdfe","eeaeadc","cfcceba","baec","bebeeeff","cbcafbaa","baedf","fbdee","fcfe","ecdb","cefccda","deaaaae","affdf","acacfddb","daefdffe","cddd","fdddd","eedcb","eadceefe","ccfdbf","eaebbee","ebeddfb","dffcbdff","bcfdacf","fdfcbde","eaa","bdebfbb","efefcbd","beeca","bcdf","ccaeb","edadbbb","bfaef","ecfc","bdcaa","ccdadeaa","dfecff","bdaebda","dfdec","fadf","ffaefedd","beaadb","bafb","abefd","edcbdbf","fded","efeeacba","cbcbaffa","cccefe","affacaa","aedbef","bdfe","febaafce","dbadf","bbbddcda","dddec","bfadfbef","ccfe","ffeeac","eddaaced","fafbf","efebaa","fbec","bbf","ccbeddba","bfeaaccd","dffe","daedc","decaaab","beeecaba","faafae","cbfeac","affa","dfaddad","dcefbcdd","befbcfe","dfddde","abbedcb","eecc","ffbbef","cfef","ddbddfaf","eeeeab","abdc","bbcbb","eccadb","edbb","febbfe","afedcd","ffeacefa","ecdaadee","daec","bacec","acbefcdf","fbdcade","dfdcdace","ecad","ffdfbff","dbabcba","eebf","babdf","edff","ebdab","eaeac","dffcbd","badaccd","bfff","beebf","ccaffcf","cbabdba","efafad","dbbbe","bfed","eeaa","feaffbb","bcadeeb","edcb","eabbdcb","bccda","cedbfcdb","cfc","cbdad","bfde","fdbee","efaf","ecbedfcd","eeaecca","eabcc","bcabfdf","acbe","acabb","ceadfd","edceffad","ccfcd","faccaff","dafefea","eacafeab","adfbfbb","abbdd","dddfcf","cfecda","dbbcddf","cadfbcab","efafa","bfdfb","badcf","cbce","facd","cbedae","bbcdceaa","edaec","eead","befccecb","bcedeefd","ebce","ffebac","cef","baafbbf","edfffaff","baebddf","ccecffa","cefbfda","eccac","cadabcca","cbef","fcadfcad","feffd","bcdbeb","fcdcdd","fdaeddcb","aeeadda","bcccedb","fceaacd","dcfec","fceaead","baefdff","fcbfe","ebcefe","acfccfc","abadac","eacf","edafaadb","dcddcaa","aeeaeaff","daaedc","efabdac","eddeafe","fdac","eebebfe","ebece","face","fecaaccb","caced","cafd","eddfdfba","ecbcddc","caebcdbd","aeecbeb","beaebe","afabb","abccadd","acff","dfaccdae","efbeccf","acccec","ddccd","cbbfadae","befcaf","affaa","bbedd","ccb","abeff","acaf","cfddbfb","bfffea","cecdd","daacfbcc","ccfb","ddfacacd","bffbdbf","aaec","bdfcca","bfcdea","bbbdbac","cedaecd","ffdeae","dfdbe","accdbe","eafaf","dbfe","bafefee","cbcadd","ecebc","cbfc","cecdaff","ffecf","defeada","dfbaa","ccafd","bcbfc","eccc","feadc","fabfe","decabfc","fafcddef","dedbfced","deceebb","eddeff","feeffece","bdfbbbbd","ebdacbb","afbdcc","fcbbbdbc","fdfbeb","cbdfbe","bedcda","aebfb","afbab","effdbfd","dce","cdceda","ddce","addb","bffadbac","cebdbaeb","efdf","aecfccef","ceebcfea","afccfbf","dbcfceb","fffdcae","efcdbe","ebabe","eafaadfe","ffafdc","bdffb","cdefeace","adfda","beececf","eeeeea","adfadca","dcbbdedc","eceadfc","ccadb","febbe","accbbeb","bffcbf","cafbdced","aaffb","bbbaafac","edaafad","dfddee","ebbeca","dccebad","adbf","dccbcdfe","dfabaeb","dbcaabd","beefa","aadbdade","cfaebc","cfeb","ecb","ddbade","aaccecd","aaceb","facaeeed","dfefbafd","adeccecb","afbf","aacdceb","fadcfed","feefc","fcaccbdb","bcdfabb","ceaae","cfbfcc","dfdf","fafdaadb","fcebffcf","cff","daebb","bfbab","bacdaf","fecaadb","dcacd","effeae","ffdbc","afeefc","fcbdfaa","eeabca","bfdac","adeeeebd","ddbebad","fbcae","bbff","efcdc","ecaa","afac","ffccdf","cccddce","eacccfea","ccdf","cfecd","ccac","dccac","eaddbcdd","eabcbb","fecdbfda","fcbcc","fffbdbb","efebcad","dcffcfdd","efcaace","acacfff","ddaccad","beafddef","fbeea","baeac","bafac","cbcbbeca","bebae","bbccd","bfdaeb","ddebea","caacdfdc","cfbecab","baeddfcc","fbddcfde","dcccceec","cefeae","dacbddb","edaaeb","bfbcdedf","cfceedda","daabcee","eefdfdbd","affcbfcc","acfed","deabeecf","ddceaedd","aaabe","fced","abfce","daffbe","cbabeba","adeda","feffbcaa","fdbbfebc","daccffdd","bfaaffd","cdfdc","cfffb","fdfff","bedddedb","cdbcd","bbfcc","cbafb","cbeaed","adacafbd","bbaaba","ccaab","ccafc","bcdde","edfdbbe","dcdd","bacfecf","cbfe","dbececed","adfed","fbaaded","eafdfdef","edfe","decfdfd","feda","aaaeb","cfcbcac","edeebad","bcafb","afadbf","aedc","afadcec","afcea","ddcc","cdabeca","caea","cdaefaef","cfabfeee","cfbfa","dbbde","abb","fbdcbc","facefac","ebbdafe","fdbdbc","eebcade","fedbab","eeddedc","affdbff","fbcedfa","eefffaab","acbeb","dacbaddd","eccff","fbfafa","ddcedec","efdbcff","bbbdeeb","beaffe","dfba","ebaccfae","cfadfaef","dcbcccef","abebca","fbcc","bbbddfcf","edfaeda","abcbcffc","efdccdb","fbaab","efdc","afadc","dfca","adfaade","addcec","acbb","dabeeccd","bcaccab","eeefdee","cfdfdd","adde","cabacedd","cdefae","adaecfb","cbeac","dddfe","badef","afefd","babec","bcdbabd","eadbfdbe","abff","faddcc","fceafbf","eedcbbfd","bedffdef","acaeeee","ebdcbdb","dfdcabb","cedbd","dffb","afffcbfd","eefbceba","bfbca","bbcd","efebfd","eceba","cfeceddd","cadf","cfffdf","acdfcbd","efcbae","fccfcaad","cefffdeb","aefeee","eaafaede","dfbefbeb","dedcceef","afddeae","abafeb","adccdbe","aade","dfcb","befcaae","fdebbe","caabfa","eadbbdc","cbaafca","badacfdf","dfdd","fef","bceeeac","caaea","efdad","fdbdcdf","abbf","fcaddf","aaabaee","cbac","bfbeebe","fecfab","caffedeb","beeaedee","bbefcafc","efccfadd","ddcadbb","eebdeaea","ebadd","bbbdbdfb","babcbb","aacbca","fecdada","ddceeac","fdfbfbee","deedebc","cabfd","faefebde","ddcbdc","aecc","bbfcfc","fcbbdda","fdedfef","ebaebfb","edda","ccdbecb","baddbacb","cdbcdbc","efdcafbe","cefddbb","eeee","aedffdf","bdfa","dfaf","fccdd","dabc","adbccf","beba","cedeafce","bebcdf","dfce","bfabf","fcecbf","cbeefee","fafeef","ffbac","abecc","bceaced","adeebce","ddcefe","bfddbdab","cfabddb","eddbbecf","acccbd","dedccbd","faacacdb","aedcfbaa","aadabb","daabbb","cfcafc","fbffd","afadcdc","dcfdf","ecdfcfc","bffb","aefdba","aeeadeee","cdaacf","fefabbfa","fedabcaa","bbdbcf","bdddb","ccecac","adfba","fdcf","dabddda","feecefb","fadbd","fffadda","debeaf","cffebbd","dfadc","bdeedd","eefdacd","bfefcdac","bbcf","baddfce","aefeff","dbbaccdc","abca","bcab","abcf","bafa","eeacadb","faaf","bbbbbaba","eebfbce","eeafccf","eefbcfa","edecde","dccda","cceadc","dbdaab","eeededb","cdbbba","bbec","adce","fecd","dbdbdb","fdccdd","cdfbfa","bcdebcd","eebdfa","dcfbac","dcefff","ceedfa","cfdee","edadecbd","dfbfcd","afaeaae","bccacbee","cfedf","fecdaccc","eded","eeedbab","cbaef","cfbc","cbeacf","ebfa","fadadc","dadb","eccaba","aadafd","fffaffab","eaaeabb","deacccf","cedbcf","efdbcf","daaac","cfabafba","cbaa","dfdedcf","fdfc","badefbe","cefcbb","bfdde","ffcfaaed","bcabaea","cabfdca","fcfeea","cebfc","fbccebbd","bacadda","bacb","abbeeff","efbfa","bbfbb","ceccaa","effd","fdfdacab","fbeffcf","bbafd","beefba","bfbfa","adfdf","fdffcad","ffce","bef","aeceefa","cffbbafe","eabee","cabcfec","bcbcacf","caabcc","fbcd","faec","fbbf","dcfebced","cadfa","febb","ffbfc","abefcfdf","afdcee","edeca","efabcdca","beeee","cbfa","ffceeb","defabad","bcdbddaa","dbecee","feaafdca","deeffc","addf","abdeab","daffcaef","ecddbd","ebfbefae","abcfd","efaef","bcbabfff","bccd","dfbe","ffeb","faaccab","bfbe","dfafdac","afaafbec","ecca","bacfebde","ceecd","efceab","bddbdd","afebdeb","cfbf","cddbbf","fffcfb","fbfeeee","babfaf","cabcfdcc","eeababdf","ffceecca","bffeb","ffbadf","edadc","baabebaf","dbeedbab","deeefeac","bdccfa","bfcfd","ecfb","ebfadcce","aaadefc","aaffaaf","fccecc","adcfcbc","bfcd","bebcab","fedfefcc","ddecac","fbdbdf","bacde","fbfcfb","edbcfeba","ecdaafd","eafeffb","ddaeccf","aca","bfddfdfe","ffffcd","bbef","cfabc","adeacb","daefdada","eafeaba","ebbdcca","bfceac","cbd","cfebca","eecbdc","dafe","ddeaf","adafaae","dcaaceee","eafbda","bbce","bbcba","beacaebd","bdc","fdfbee","dfabca","bfa","fbfeec","bdff","bbaa","ccbcae","acca","ddaeebc","cfafa","acceafb","edfedefe","affab","ffedbab","eeedefd","ceaccadb","bbefeb","fdacdd","aafcfa","ddaa","faacbbc","becda","aaebdcbc","ffbbfdf","efcee","fbcfbc","abbe","ccffab","babfbaa","aeeefcad","ceecaf","acbbcdcc","dcbceee","edcbdfec","dfaccf","eafb","fcad","ebbaa","dcdbbd","fdcba","bfaefbbb","ddcfff","adcfecc","edef","bdbcdbb","cdeeadc","aadfef","abeef","abbacc","ebaf","efeb","ecefffba","baaffedb","dfdaa","ffcbd","afbaeff","cdcff","cfaeeefb","ccfddcb","eaaecc","ecfbeef","adcde","fbeb","dbeeeecb","cdadceea","affea","ccbfffca","dbbad","adcbffe","adddfcc","abcdd","abbbcef","cfcdcff","edfefffe","eedb","dadfbff","fbbdcb","fbbfc","efccdc","ecbfe","cedaaf","cfec","ebcbf","eceacf","dfccc","adbdbbd","cfdde","eebfbae","accfdfe","daefaefa","dffbfcfc","bff","abdbaa","acfeaadc","fecbc","eeccbb","faccb","dbeadac","befbeda","cfffc","beacaf","bcffd","aaabda","aeed","bbbadd","eeaafde","dbbeeebc","acdcce","efcebeb","bdedbd","bdeeaf","deaeeffe","daddfadb","bafcb","cedeaadf","bafadcd","bddbbcf","bfabccc","fbaabff","ddccbddd","efecad","fbef","afbd","bfccbcb","caedbeb","cedffdec","afce","fddfeaf","beafc","daaf","efbbb","afbfeaf","dcddeac","cbbefecf","ffeeda","cfdbfde","abfec","dfbf","aefecabf","fbbeea","ebfb","bcbbb","ebcdd","dbcafb","fbade","adfd","cacad","cfacddbc","afbcbf","fdefbbd","ddaccdee","bfcdcda","eaeb","eedaeab","cceda","ddaee","fdbc","eceacb","cadfef","dacafc","fdcc","eeabdd","bbebae","ddeaea","aafedce","fbfaecc","adbfecc","afacdff","cafec","afcbabac","dfdbfea","ddeaacfe","fdadeecd","ceddb","eeed","bcabcf","cbca","badc","eefeee","baea","bdfedea","ebbfe","aeebce","dccdac","cdcbd","dacdeac","ccaebccc","becacabc","ceadebc","baeabb","aaffbb","afedeabe","dccdb","ffedeb","dfcfcaf","caecedd","dabda","cacaeabc","feddf","bcbaccaa","fefdbbec","ccede","ccfaf","bcdfdfcb","cfba","ccaded","cbfda","bdfddbbb","eadccb","cfdaacbc","cbadeac","cffc","eacdbe","cadcdddf","aaee","efbcaaee","acbfdbc","acdeeaa","feaaaccf","ebcb","cebdd","cadaca","ebeafcf","ebdeaf","fdbdeeff","beeafce","bbdeebac","dbeede","fddea","ccefeb","ceddbe","fffdebda","fffbaca","feabbc","cddeefa","bcbcabfd","efeebfd","bacebdac","feceafc","aaecaddf","adfeef","feececaa","ffedafcb","cbdfcaa","ebbce","bcecef","ccab","dbbcc","edbdea","eccfb","fbffcdbc","fabddbbc","fbdfd","ffedfbcf","cbbceac","bffd","afeaad","edbbfba","bacf","dbcde","ccdcc","fdfbcca","edfc","eccaef","dced","eeedbcbc","dfcabeac","dffecad","aacbfce","bbfebd","dedbadce","ebdbcbb","dfbdbaed","cceccf","adbfcf","baebafa","aecadfad","fbfffd","ccdadfb","caee","acace","edade","bafe","edccb","cbcce","ccdda","dbcacaaa","aebccddf","ebed","eafdadc","acaaaf","aaaeaf","debf","fddddbab","faeecf","eafcbffc","ddebc","ddefccea","feeedef","ddcdb","ecdeedea","dbffdce","ddda","baefd","aacdd","ffbddaec","aadbd","dafaab","dcacaa","fdabb","cffbdcf","ccefed","afede","afdad","fbaaf","bdfead","ddbf","cdfafcf","cccdab","cdef","efbdbbce","ecabbbcc","ecbfded","acfbbd","caacefad","faedfd","eabdbbd","bceecb","ebbcda","cfbcadd","bebf","aaccddaf","efea","cccfccbf","fdfdd","aaaaea","bffbd","dbbaac","eceacca","fdedfada","bfeffcbf","eabc","baebf","cffffef","eddadeff","eccfadca","aaeaab","cbfccdd","debbafb","bdcfebfa","adec","caad","ffebfb","afcaa","adedfc","addbdb","dfaad","efacba","addbbcb","ffdb","bbca","dbcbbfa","cfaa","cafddcfc","dbbedc","dcaeeb","eebecfad","dedee","feffdbff","abdeedc","eadddbb","facceff","ecdfdffc","effdded","eaeeae","ebadeb","dfcca","cdaabdc","afeabb","bcbb","ebeffb","acbffde","cbbcefee","accbfebe","dbf","dfdfbb","add","ffbb","cccbeac","afdfaeed","bccaaac","dcfbdaf","dbdbd","dafbbde","dcdfcdeb","cabba","cbbc","feddccdf","acefdb","dffcca","bfcbbe","befceedb","aacd","fdff","fdbeb","fdfafced","bccdb","fccefae","dbdfd","bcecbb","cdcdbcbe","ebcdec","dcadbed","afefa","ecebdad","acebb","dfae","edeafcab","fdefedbd","bdfbffa","bfafc","dcbaeb","cecafee","fbdd","cfecace","eccfcf","ebbaf","eccfbf","bbeccd","ccfedfd","abaaacb","cbbabfbd","cbfecccb","bcfcfbdc","abcdcccd","cbaddcda","ceccbd","afefed","cbfaef","deeedae","adcbe","aadc","dfdcaa","eefbbfc","ccdae","eaeaaf","ffcf","adbde","dffdae","bbeafede","aaacd","fcccc","ceebdbbb","ddddf","bcaefd","ccad","bdafbdcf","ecbbcbf","fdcbedbf","afabddbd","faaaeab","fefdffab","dbcdbabd","acdef","fddeab","dcfcbbaa","faeace","cccfdfc","efdd","bcfca","cefa","adbdbabd","dedbddc","baaaca","daafa","dfbebbf","dfefb","cbccb","acedaf","addda","bddfaf","eeefecfc","beeafc","adaaea","ecedc","defbcace","eeab","dcbc","dcec","bcecbcae","fefecbc","ccbfbef","aebc","febfbc","aebdaa","faebbd","dfdddd","ebcedfb","eacfee","aefffd","afedca","eafbcebf","dacbdccd","dadcbdab","adddfcad","edbae","bbefaede","cfacde","bbafcda","aaafcdbf","ebbea","fdebff","acdeebca","bbba","ffbed","acfbbe","becbcc","abaeca","fcdad","beaeeef","cefeedcb","fbed","cbbabde","cdfff","afdba","acefaad","fcadabeb","fbdbeafa","adffa","aaddfb","eeae","cdbfebae","ccffdeac","efbafcd","edfedf","eccae","adedefd","bcabdfac","deaed","ccddfd","deacfc","aeebfc","aeccffda","ecbacaf","eccbd","becd","ebaeb","bdccbca","beebeae","eeaabec","ffbbbc","cbfcedc","cdeaf","bccbb","aaeddfb","beafffb","eddddb","ddedc","badcb","cbbff","eecadd","cfaffeb","ddbbab","ddccbeba","ecacfc","baeeefc","bcdcff","fffcdb","bafbb","eabd","fabaaca","dbfab","dcfb","abedcb","adbac","dfaededb","abdabfde","adcefaac","faedbdae","dbbafccc","faecb","beceb","caadcba","eddfbfcf","ebef","dacef","affbcbcb","dace","aeffb","bbceffea","dbacf","ffcbfab","ebdeda","edad","cdedcc","bfbaf","cdcc","ceadfcab","dedfdda","ebaee","efbbfa","bdecff","ccccb","dbeec","caead","dddee","aaffaac","bcbdeac","ddaebf","adffcaee","dfefd","edbadda","ebeeafd","eaeded","bbeaacd","bffbfcd","faca","efab","ffddefcb","fcacfe","fbabcdf","cdfba","aafeacbf","febcfd","aeca","fcdaaec","dbd","bfaecfc","fbda","ecbbfbdf","facabc","afeafecd","bbebb","bdddfed","fcfef","fdcfaa","feeeebc","eaef","fdeb","aceaa","bfddefac","cebb","fcebfdb","daadbf","bdbacfbb","fadadf","fadd","befcffb","eabfa","cbfbfddf","eefbfeca","ccdbaaab","fbdfca","abffedc","bacbd","fbcaadef","bdfdaca","fdecfbe","fdbfa","ecacfb","aead","fefde","abdbba","edfeafed","dfbdc","adcddfc","abbc","feaaedce","fdbef","fcfcee","eeef","abeeeefa","dcdf","eecdfb","fcaa","afcfdf","afaf","fcfcb","fcefec","acaeacdd","cebacacb","ecbbcb","efbefffa","fabdebdb","eccaee","fadef","ebbde","ecceef","decd","efbb","fdddf","deaabd","adcaeb","fcaff","ecadbbdc","acabeede","dbfdabc","eecee","ecafddc","bcffabe","afab","fddfdbd","cacceffe","ddaaedfc","dfedecf","eedccf","cedfceae","dccf","ebdeabae","dbfbfd","fedab","becf","dabcfbfb","daeb","ecbeadcd","bfecf","cbcdedfa","ecdbdeec","fdecaf","cdfdcbbc","bbadaaf","deabacca","fbeedc","bdaedb","cdfca","aaafab","daafc","edaca","aadfedea","eebb","dabfdcbb","acabece","acedcd","ebabda","caaba","efdcbad","bceab","eeeaaf","dfcebdd","efadfcae","eacbc","ffceebbf","acedaade","afdcbeb","bcebaaab","cdcbcfed","cbbdaefb","dcbdc","fdebdab","feebf","cfbcdb","bfeaaba","efbdb","eecfdae","aecefbfd","ffecaeac","aabdbfce","abfacc","aebdee","fabcee","dafacb","cefedbce","cedafba","cfffeeea","bcb","cfcccd","eaefcc","ceedfdc","fdadbe","fcbfb","cdabddf","fdfebcbd","bbacffa","fbbadce","cdecf","ecee","aadcc","faab","dfaebd","adceefd","dbaaeb","faebec","ddaefdec","faeecbff","caebadbe","deecdfe","bfffabc","cbedbcf","faebaaa","edcece","eaaebfc","ecefee","ebbafae","cdeeef","dbaaabe","dbccd","fcbfd","eefddbcd","eafed","beddc","cffecd","cadde","ecfd","beccedd","eeadfadb","eaeddbae","ffbaac","fcdeffef","cabb","aceb","acefdd","efaada","cbffd","bebbce","afeecb","aaae","bafaecf","dcdcefdd","dceaafee","ecbfd","ababe","ffffdd","babf","aabdeeeb","cdcbaa","dcddabfc","abfab","dfeaafce","ecfefda","daaeaaa","dbdf","cadcd","ddccf","aaefcc","ebdaedcf","fdcfcd","cfcfad","badce","eacde","caaceeef","cedbeaa","eeedef","baceca","bceefa","effeb","dacafacb","ceffdff","ddca","bacfeac","bbcccb","fdbf","cfceee","fbbee","dcaecd","bdca","befe","decab","aafcee","dadd","deeac","affbead","edbffadc","cafca","ceeffc","fcedcc","cacaa","cbcbdecd","acbd","fedecf","aaccfbfe","efddef","cacadd","beef","daddfce","eccee","eccbb","febffab","caede","cdfebbb","cdadbcdf","bfbdab","dcafff","fbdaab","fafa","bbcefeb","daecedfa","aceaecbd","bbbbb","cffaac","fdbedd","edfaf","baff","ccddff","aeec","cbfdefe","bddae","adeab","aaaaef","feffc","bbaea","ecefac","baac","baabbb","afffcaed","ebcce","adfbaad","facecfc","bedbebe","daabbc","cdbeabce","afeaf","bdedfd","bec","febfdea","ceff","bdadbfc","eecb","efccddfd","caeebca","fabdac","bebbfcff","cbad","fdee","afbbcaa","decdbfe","fafdbaee","daecebab","caecebbd","bbfcd","ceacbfde","cbcd","fecabbed","eccdcdec","acdf","edfbb","adeef","befd","fdcaf","bedc","fecdafd","efda","bbbbccbe","bdadba","ccdaafeb","dbde","decffcc","efaec","bdbcbffa","bbbd","aeefecd","baceacec","fcfbbc","ddadcb","afdebcd","cacbee","febade","ccdedda","accabefb","cfdddfae","effc","bcdeb","bfdefeeb","dcfbdd","fadadba","fabedfd","ccdeea","dcccd","bbaffda","cdcebd","fbdbbbea","cebfebba","caaefd","bddeefbe","bbbdecfb","feddd","dfaadecb","dafce","bbda","dbfdcd","fdaeec","cfadbc","dbfdeeed","bdacb","dcdacd","feadfb","fccaeebb","fefe","ebbcdcab","ccfcceb","eaabfa","bdeefb","dcecef","eeaee","aaefd","afdfa","fcfbcde","feccb","feeecf","cffffa","dae","cffcec","bccdf","bdbfae","bdcdf","fcdcf","cbbbb","dbfdeca","eeddea","dadfbacf","acfcd","ddfb","fcef","beefdbed","cefcd","fdcdff","fcdcbc","daaeaca","efcef","facfdcb","cdefdcd","afddb","fcedfabc","dbdff","bfada","bfbbceef","affefa","bcdcf","facbd","fdecfcef"],
];

include_once dirname(__DIR__) . DIRECTORY_SEPARATOR ."xhprof.php";
$xhprof = new Xhprof();
foreach ($datas as $data){
    // var_dump($data);

    $obj = new Solution();
    $result = $obj->palindromePairs($data);
    var_dump($result);
    echo str_repeat("<br>", 3);
}
$xhprof->end();
